// 导入express框架
const express = require("express");
// 使用express框架的路由
const router = express.Router();
// 导入userinfo的路由处理模块
const userinfoHandler = require("../router_handle/userinfo");
// 导入expressjoi
const expressJoi = require("@escook/express-joi");
const {
  password_limit,
  name_limit,
  email_limit,
  forgetPassword_limit,
} = require("../limit/user");

// 上传头像
router.post("/uploadAvatar", userinfoHandler.uploadAvatar);
// 绑定账号
router.post("/bindAccount", userinfoHandler.bindAccount);
// 修改密码
router.post(
  "/changePassword",
  expressJoi(password_limit),
  userinfoHandler.changePassword
);
// 获取用户信息
router.post("/getUserInfo", userinfoHandler.getUserInfo);
// 修改姓名 changeName
router.post("/changeName", expressJoi(name_limit), userinfoHandler.changeName);
// 修改性别 changeSex
router.post("/changeSex", userinfoHandler.changeSex);
// 修改邮箱 changeEmail
router.post(
  "/changeEmail",
  expressJoi(email_limit),
  userinfoHandler.changeEmail
);
// 验证账号与邮箱verifyAccountAndEmail
router.post("/verifyAccount", userinfoHandler.verifyAccount);
// 登录页面修改密码 changePasswordInLogin
router.post(
  "/changePasswordInLogin",
  expressJoi(forgetPassword_limit),
  userinfoHandler.changePasswordInLogin
);
//--------------用户管理
// 添加管理员
router.post("/createAdmin", userinfoHandler.createAdmin);
// 获取管理员列表getAdminList
router.post("/getAdminList", userinfoHandler.getAdminList);
// 编辑管理员账号信息editAdmin
router.post("/editAdmin", userinfoHandler.editAdmin);
// 对管理员取消赋权
router.post("/changeIdentityToUser", userinfoHandler.changeIdentityToUser);
// 对用户进行赋权
router.post("/changeIdentityToAdmin", userinfoHandler.changeIdentityToAdmin);
// 通过账号对用户搜索
router.post("/searchUserByAccount", userinfoHandler.searchUserByAccount);
// 通过部门对用户搜索
router.post("/searchUserByDepartment", userinfoHandler.searchUserByDepartment);
// 冻结用户
router.post("/banUser", userinfoHandler.banUser);
// 解冻用户
router.post("/hotUser", userinfoHandler.hotUser);
// 获取冻结用户列表getBanList
router.post("/getBanList", userinfoHandler.getBanList);
// 删除用户
router.post("/deleteUser", userinfoHandler.deleteUser);
// 分页功能
// 获取对应身份的人数总数
router.post("/getAdminListLength", userinfoHandler.getAdminListLength);
// 监听换页返回数据
router.post("/returnListData", userinfoHandler.returnListData);

// 向外暴露路由
module.exports = router;
